package rickyGame.game.property.property
{
	/**
	 * 计算值
	 * 服务端计算后不需要马上更新给客户端只有当客户端请求的时候才发给客户端
	 * eg:防御值,攻击值
	 */
	public class CalValue
	{
		public function CalValue(base:Number=0,adder:Number=0,multi:Number=1)
		{
			this._base=base;
			this._adder=adder;
			this._multiplier=multi;
		}
		
		protected var _base:Number;
		protected var _adder:Number;
		protected var _multiplier:Number;

		/**
		 * 基础值
		 */
		public function get base():Number
		{
			return _base;
		}

		public function set base(value:Number):void
		{
			_base = value;
		}

		/**
		 * 附加值
		 */
		public function get adder():Number
		{
			return _adder;
		}

		public function set adder(value:Number):void
		{
			_adder = value;
		}

		/**
		 * 基础附加率
		 */
		public function get multiplier():Number
		{
			return _multiplier;
		}

		public function set multiplier(value:Number):void
		{
			_multiplier = value;
		}

		/**
		 * 最大值
		 * 附加物理伤害+普通伤害*物理伤害附加率
		 */
		public function get value():Number
		{
			var va:Number=_base*_multiplier+_adder;
			return va;
		}

		/**
		 * 设值值
		 * @base 基础值
		 * @adder 增加的值
		 * @multiplier 增加百分比
		 */
		public function setValue(base:Number,adder:Number=0,multiplier:Number=1):void
		{
			this.base=base;
			this.adder=adder;
			this.multiplier=multiplier;
		}
		
		public function add(value:Number):void
		{
			this.base=base+value;
		}
	}
}